export type TYPE = 'number' | 'string' | 'date' | 'checkbox' | 'radio' | 'image' | 'button';
export type ALIGN = 'left' | 'right' | 'center';

/** 基础属性 */
export interface baseProps {
    /** 唯一标识 */
    guid?: string;
    /** 属性名（字段名） */
    prop: string;
    /** 标题 */
    label: string;
    /** 自定义标题 */
    labelex?: string;
    /** 英文描述 */
    labeleng?: string;
    /** 翻译key */
    translateKey?: string;
    /** 是否显示 */
    visible?: boolean;
    /** 是否只读 */
    readonly?: boolean;
    /** 是否必要 */
    isRequired?: boolean;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 是否禁用显示 */
    isDisabledVisibled?: boolean;
    /** 是否禁用只读 */
    isDisabledReadonly?: boolean;
    /** 是否禁用必要 */
    isDisabledRequired?: boolean;
    /** 是否禁用禁用 */
    isDisabledDisabled?: boolean;
    /** 是否更多 */
    ismore?: boolean;
    /** 类型 */
    type?: TYPE;
    /** 组件模板实例 */
}

/** 表格属性 */
export interface tableColumnProps {
    /** 唯一标识 */
    guid?: string;
    /** 属性名（字段名） */
    prop: string;
    /** 标题 */
    label: string;
    /** 自定义标题 */
    labelex?: string;
    /** 英文描述 */
    labeleng?: string;
    /** 翻译key */
    translateKey?: string;
    /** 是否显示 */
    visible?: boolean;
    /** 是否换行 */
    isWrap?: boolean;
    /** 是否只读 */
    readonly?: boolean;
    /** 是否必要 */
    isRequired?: boolean;
    /** 是否禁用 */
    isDisabled?: boolean;
    /** 是否禁用显示 */
    isDisabledVisibled?: boolean;
    /** 是否禁用换行 */
    isDisabledWrap?: boolean;
    /** 是否禁用只读 */
    isDisabledReadonly?: boolean;
    /** 是否禁用必要 */
    isDisabledRequired?: boolean;
    /** 是否禁用禁用 */
    isDisabledDisabled?: boolean;
    /** 是否合计 */
    isCount?: boolean;
    /** 类型 */
    type?: TYPE;
    /** 宽度 */
    width?: string;
    /** 对齐方式 */
    align?: ALIGN;
    /** 固定方式 */
    fixed: string;
    /** 左固定 */
    left?: boolean;
    /** 右固定 */
    right?: boolean;
    /** 是否启用输入框过滤 */
    isFilter?: boolean;
    /** 是否启用排序 */
    isShowSort?: boolean;
    /** 是否启用过滤 */
    isShowFilter?: boolean
}

/** 标签属性 */
export interface tabProp {
    /** 唯一标识 */
    guid?: string;
    /** 属性名（字段名） */
    propName: string;
    /** 标题 */
    title: string,
    /** 自定义标题 */
    customTitle?: string;
    /** 英文描述 */
    customTitleEn?: string;
    /** 翻译key */
    translateKey?: string;
    /** 索引 */
    index: number;
    /** 参数 */
    params?: {
        [key: string]: any
    };
    /** 是否显示 */
    visible?: boolean;
    /** 是否是动态数据 */
    isDynamic?: boolean;
    /** 是否默认查询 */
    isDefaultSearch?: boolean;
}

/** 基础区域（表单区域） */
export interface UiSection {
    /** 区域名称 */
    sectionName?: string;
    /** 参数 */
    params?: object;
    /** 原表单区域名称 */
    oBaseSectionName?: string;
    /** 区域属性 */
    baseProps?: baseProps[] | any[];
    /** 原始代码配置 */
    origin?: UiSection
}

/** 表格区域 */
export interface TableUiSection extends UiSection {
    /** 表格合并列数 */
    colSpan?: number;
    /** 原表格分组头区域名称 */
    oTableGroupHeaderSectionName?: string;
    /** 原表格列区域名称 */
    oTableColumnSectionName?: string;
    /** 表格列属性 */
    tableProps: tableColumnProps[] | any[];
}

